Πρωτόκολλο επικοινωνίας ModBus
Το πρωτόκολλο Modbus είναι ένα γενικό πρωτόκολλο επικοινωνίας που χρησιμοποιείται ευρέως στον τομέα του βιομηχανικού ελέγχου σήμερα. Με αυτό το πρωτόκολλο, οι ελεγκτές μπορούν να επικοινωνούν μεταξύ τους ή με άλλες συσκευές μέσω δικτύου, όπως το Ethernet. Το πρωτόκολλο Modbus χρησιμοποιεί την τεχνολογία επικοινωνίας master-from, δηλαδή ενεργά ερωτήματα και λειτουργία από την κύρια συσκευή. Το πρωτόκολλο που χρησιμοποιείται από την κεντρική συσκευή ονομάζεται γενικά Modbus Master και το πρωτόκολλο που χρησιμοποιείται από την συσκευή ονομάζεται Modbus Slave. Ο τυπικός κύριος εξοπλισμός περιλαμβάνει βιομηχανικούς ελεγκτές και βιομηχανικούς ελεγκτές. Τυπικές από συσκευές όπως PLC προγραμματιζόμενο ελεγκτή κλπ. Η φυσική διεπαφή επικοινωνίας Modbus μπορεί να επιλεγεί με σειριακές θύρες (συμπεριλαμβανομένων RS232 και RS485) ή με θύρες Ethernet. Η επικοινωνία ακολουθεί την ακόλουθη διαδικασία:
Η κύρια συσκευή στέλνει αίτημα από τη συσκευή
Ανάλυση και επεξεργασία αιτημάτων από την κύρια συσκευή και, στη συνέχεια, αποστολή αποτελεσμάτων στην κύρια συσκευή
● Σε περίπτωση τυχόν σφάλματος από τη συσκευή θα επιστρέψει έναν κωδικό ασυνήθιστης λειτουργίας
Προϊόντα λογισμικού πρωτοκόλλου επικοινωνίας ModBus
Τα προϊόντα λογισμικού πρωτοκόλλου επικοινωνίας ModBus που παρουσιάστηκαν από την Intel χρησιμοποιούνται κυρίως στο περιβάλλον ενσωματωμένης μητρικής πλακέτας ARM9 της Intel, η οποία διαθέτει πλούσιες σειριακές θύρες, πόρους δικτύου, γενικές διεπαφές GPIO κ.λπ. και ισχυρή ισχύ επεξεργασίας. Σε συνδυασμό με το λογισμικό πρωτοκόλλου επικοινωνίας ModBus, είναι πολύ εύκολο να δημιουργήσετε μια πλατφόρμα εφαρμογών Master (Master) και Slave (Slave) σύμφωνα με τις προδιαγραφές επικοινωνίας ModBus. Το πακέτο λογισμικού του πρωτοκόλλου επικοινωνίας ModBus χωρίζεται σε δύο ανεξάρτητα τμήματα, δηλαδή το "λογισμικό πρωτοκόλλου ModBus Master" (με συντομογραφία modbus_Master) και το "λογισμικό πρωτοκόλλου ModBus Device Side" (με συντομογραφία modbus_Slave). Σήμερα το λογισμικό πρωτοκόλλου επικοινωνίας ModBus τρέχει σε περιβάλλον WinCE και είναι διαθέσιμο στους πελάτες με τη μορφή συνάρτησης C συν στατική βιβλιοθήκη LIB. Τα κύρια χαρακτηριστικά του είναι τα εξής:
Ιδανικό για βιομηχανικές εφαρμογές σε πραγματικό χρόνο
• Μπορεί να υποστηρίξει εφαρμογές πρωτοκόλλου ModBus που βασίζονται σε σειριακές θύρες ή εφαρμογές πρωτοκόλλου ModBus που βασίζονται σε TCP
Τρόπος μετάδοσης RTU
Υποστηρίζει τις περισσότερες λειτουργίες κώδικα λειτουργίας Modbus, συμπεριλαμβανομένης της λειτουργίας bits εισαγωγής σε σπείρες, διακόπτες διακοπτών και λειτουργίας bytes σε μητρώους
• Υποστήριξη διευθύνσεων μετάδοσης
Ευέλικτη ρύθμιση του χρόνου λήξης της επικοινωνίας ModBus
• Λεπτομέρειες για τον κωδικό σφάλματος του πρωτοκόλλου μεταφοράς στην επικοινωνία
Διάγραμμα επικοινωνίας λογισμικού πρωτοκόλλου ModBus

Κωδικός λειτουργίας που υποστηρίζεται από το λογισμικό πρωτοκόλλου ModBus
Κωδικός λειτουργίας |
Περιγραφή |
1 |
Διαβάστε ένα σπείρος |
2 |
Διαβάστε διακριτή εισαγωγή ποσότητας |
3 |
Διαβάστε πολλά μητρώα |
4 |
Διαβάστε το μητρώο εισόδου |
5 |
Γράψτε ένα σπείρος |
6 |
Γράψτε ένα μεμονωμένο μητρώο |
15 |
Γράψτε πολλά σπείρα |
16 |
Γράψτε πολλά μητρώα |
22 |
Αποκλείστε το μητρώο εγγραφής |
23 |
Μητρώο ανάγνωσης/εγγραφής |
Βασικές μέθοδοι χρήσης λογισμικού
Για τη διευκόλυνση της χρήσης των εφαρμογών, διατηρώντας μια συνεπή μορφή κώδικα για τα διάφορα μέσα επικοινωνίας, οι λειτουργίες API στο λογισμικό πρωτοκόλλου ModBus που παρέχεται από την Infineon (συμπεριλαμβανομένων των modbus_Master και modbus_Slave) μπορούν να υποστηρίξουν ταυτόχρονα τα πρωτοκόλλα Modbus που βασίζονται σε σειριακές θύρες και TCP, οι εφαρμογές χρειάζονται μόνο να διακρίνουν με διαφορετικές παραμέτρους όταν καλούνται οι λειτουργίες αρχικοποίησης.
Εφαρμογή του modbus_master
Η εφαρμογή ως λειτουργία πελάτη Modbus προετοιμάζει το αίτημα και στέλνει το αίτημα στη συσκευή διακομιστή και περιμένει την απάντηση του διακομιστή. Κατά την ανάπτυξη τέτοιων εφαρμογών, οι χρήστες μπορούν να αναφέρονται στην τυποποιημένη βιβλιογραφία Modbus και στο εγχειρίδιο δεδομένων διεπαφής επικοινωνίας της υποτιθέμενης συσκευής, απευθείας καλώντας το πακέτο modbus_Master που παρέχεται από την Intel που παρέχει τις αντίστοιχες λειτουργικές λειτουργίες API για να ολοκληρώσει την πρόσβαση και τον έλεγχο της συσκευής διακομιστή. Για την ανάπτυξη τέτοιων εφαρμογών, ο χρήστης πρέπει να περιέχει μόνο το modbus_master.h/modbus_master.lib.
Εφαρμογή του modbus_slave
Ως μια εφαρμογή του ModBus Server Mode, πρέπει κυρίως να υλοποιηθεί η ανάλυση και η απάντηση στα μηνύματα εφαρμογής ModBus, αλλά αυτό είναι μόνο ένα μέρος της συνολικής επικοινωνίας ModBus, το άλλο μέρος είναι ότι χρειάζεται πρόσβαση στα δεδομένα εφαρμογής, αυτό το μέρος του περιεχομένου πρέπει να ορίσει ο ίδιος ο χρήστης. Για τη διευκόλυνση της χρήσης των πελατών, η αυτόματη φόρτωση αυτών των λειτουργιών διεπαφής χρήστη πραγματοποιήθηκε με τη μορφή δείκτη λειτουργίας στο πακέτο modbus_Slave, που συνδέει την επεξεργασία δεδομένων εφαρμογής χρήστη με την απάντηση μηνύματος εφαρμογής ModBus. Οι χρήστες πρέπει απλά να ορίσουν αυτές τις λειτουργίες διεπαφής ανάλογα με τις ανάγκες τους για να υλοποιήσουν τις αντίστοιχες λειτουργίες, οι συγκεκριμένοι ορισμοί κάθε λειτουργίας υλοποιούνται μέσω ενός ειδικού αρχείου CPP: DataProvider.cpp.
Ως εκ τούτου, η ανάπτυξη εφαρμογών αυτού του είδους πρέπει να περιέχει δύο μέρη περιεχομένου, ένα μέρος είναι μια συνάρτηση API που ορίζεται στο modbus_slave.h/modbus_slave.lib. Ένα άλλο μέρος είναι η συνάρτηση διεπαφής δεδομένων χρήστη που ορίζεται στο DataProvider.h / DataProvider.cpp, όπου η συνάρτηση διεπαφής απαιτεί από τον χρήστη να υλοποιηθεί συγκεκριμένα στο DataProvider.cpp.
Για να ανταποκριθείτε έγκαιρα σε μηνύματα εφαρμογής ModBus, πρέπει να σημειωθεί ότι κατά τη διάρκεια του προγραμματισμού πρέπει να σχεδιαστεί ένα thread που επανειλημμένα καλεί την εκτελεστική συνάρτηση modbus_Slave, η οποία είναι σε λειτουργία αποκλεισμού.
Για παράδειγμα:
(1) Εκκίνηση της συμφωνίας της συσκευής Modbus
hPort = mbusSlave_StartupServer(_T('*'), 1, 10000, mbusSlave_Interface )·
Ή...
hPort=mbusSlave_StartupServer(_T)"COM3: 9600-8-1-0"),1,10000, mbusSlave_Interface )·
(2) κλήση εκτελεστικής συνάρτησης Serverloop σε ένα thread για να απαντήσει στο αίτημα
ενώ( 1 )
{
//Κάλεσε μια λειτουργία εκτέλεσης για την ανάλυση και την απάντηση σε μηνύματα ModBus.
αποτέλεσμα = mbusSlave_ServerLoop( hPort );
εάν(αποτέλεσμα!=0)//Έλεγχος για την επιστροφή σφάλματος
{
//Επεξεργασία σφάλματος: Αυτό το παράδειγμα είναι ένα κείμενο που λαμβάνει και εκτυπώνει τον κωδικό σφάλματος
wcscpy( szText, mbusSlave_GetErrorText( αποτέλεσμα ) );
i1 = wcslen( szText );
εάν( i1>0 )
{
wcstombs( strText, szText, i1 );
το printf(κωδικός σφάλματος: %s! n'Stretex);
}
}
}
Προηγουμένως, το λογισμικό πρωτοκόλλου επικοινωνίας ModBus ήταν διαθέσιμο στους πελάτες με τη μορφή συνάρτησης C και στατικής βιβλιοθήκης (αρχεία modbus.lib ή libmodbus.a). Καθώς όλο και περισσότεροι πελάτες χρησιμοποιούν το πρωτόκολλο επικοινωνίας ModBus, ιδίως το λογισμικό πρωτόκολλου κύριου ελέγχου (简称 modbus_Master) προεγκατεστημένο στο σύστημα πυρήνα της ενσωματωμένης μητρικής πλακέτας ελέγχου της Intel σε μορφή δυναμικής βιβλιοθήκης (αρχείο modbus_Master.dll ή libmbusmaster.so) για να διευκολύνει την πρόσκληση των εφαρμογών του πελάτη. Η προεγκατεστημένη μητρική πλακέτα ελέγχου με πρωτόκολλο Modbus περιλαμβάνει όλες τις μητρικές πλακέτες της σειράς ESM (ESM6802, ESM6800, ESM335x, ESM928x κ.λπ.).
Σχετικά στοιχεία αναφοράς
| Εφαρμογή συλλογής δακτυλίων ρεύματος 4 ~ 20mA | Λογισμικό πρωτοκόλλου επικοινωνίας Modbus στο WinCE | |
| Λογισμικό πρωτοκόλλου πλευράς συσκευής Modbus στο WinCE | Η ενσωματωμένη μητρική πλακέτα Linux υποστηρίζει το λογισμικό πρωτοκόλλου Modbus | |
| Εισαγωγή του λογισμικού Modbus για το Linux | Το ESM6802 υποστηρίζει την ανάπτυξη προγραμμάτων Qt MODBUS | |
| Προεγκατάσταση του πρωτοκόλλου Modbus στη μητρική πλακέτα |
